package com.zy.service.bs.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.zy.dao.bs.MsgDao;
import com.zy.entity.enums.StatusEnum;
import com.zy.entity.bs.Msg;
import com.zy.pojo.query.bs.MsgQuery;
import com.zy.pojo.vos.common.PageVo;
import com.zy.service.base.impl.BaseServiceImpl;
import com.zy.service.bs.MsgService;
import com.zy.utils.DateUtil;

@Service("msgService")
public class MsgServiceImpl extends BaseServiceImpl<Msg> implements MsgService {

	@Autowired
	private MsgDao msgDao;

	@Override
	public PageVo pageMsg(MsgQuery msgQuery, Integer start, Integer limit) {
		return new PageVo(start, limit, this.msgDao.countMsg(msgQuery), this.msgDao.listMsg(msgQuery, start, limit));
	}

	@Override
	public void saveMsg(Msg msg) {
		long time = DateUtil.getTime();
		this.msgDao.save(msg);
	}
	
	@Override
	public void updateMsg(Msg msg) {
		this.msgDao.updateByPrimaryKeySelective(msg);
	}

	@Override
	public void removeMsg(long id) {
		try {
			this.msgDao.removeByPrimaryKey(id);
		} catch (Exception e) {
			log.info(e.getMessage(),e);
			Msg msg = new Msg();
			msg.setId(id);
			this.msgDao.updateByPrimaryKeySelective(msg);
		}
	}

	@Override
	public void recover(long id) {
		Msg msg = new Msg();
		msg.setId(id);
		this.msgDao.updateByPrimaryKeySelective(msg);
	}

	@Override
	public PageVo appListMsg(MsgQuery msgQuery, Integer start, Integer limit) {
		return new PageVo(start, limit, this.msgDao.appCountMsg(msgQuery), this.msgDao.appListMsg(msgQuery, start, limit));
	}

}
